package com.ruoyi.zd.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 保险缴费主记录对象 insurance_payment_records
 * 
 * @author ruoyi
 * @date 2025-06-06
 */
public class InsurancePaymentRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 个人缴费金额（所有险种合计） */
    @Excel(name = "个人缴费金额", readConverterExp = "所=有险种合计")
    private BigDecimal personalPayment;

    /** 公司缴费金额（所有险种合计） */
    @Excel(name = "公司缴费金额", readConverterExp = "所=有险种合计")
    private BigDecimal companyPayment;

    /** 缴费总额（个人+公司） */
    @Excel(name = "缴费总额", readConverterExp = "个=人+公司")
    private BigDecimal totalPayment;

    /** 投保年月（YYYY-MM） */
    @Excel(name = "投保年月", readConverterExp = "Y=YYY-MM")
    private String paymentMonth;

    /** 缴费状态 */
    @Excel(name = "缴费状态")
    private String paymentStatus;

    /** 关联employee表的insurance_plan_id */
    @Excel(name = "关联employee表的insurance_plan_id")
    private Long insurancePlanId;

    /** 缴费凭证文件URL */
    private String proofUrl;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;
    @Excel(name = "员工编号")
    private String employeeNumber;

    public String getEmployeeNumber() {
        return employeeNumber;
    }

    public void setEmployeeNumber(String employeeNumber) {
        this.employeeNumber = employeeNumber;
    }


    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPersonalPayment(BigDecimal personalPayment) 
    {
        this.personalPayment = personalPayment;
    }

    public BigDecimal getPersonalPayment() 
    {
        return personalPayment;
    }

    public void setCompanyPayment(BigDecimal companyPayment) 
    {
        this.companyPayment = companyPayment;
    }

    public BigDecimal getCompanyPayment() 
    {
        return companyPayment;
    }

    public void setTotalPayment(BigDecimal totalPayment) 
    {
        this.totalPayment = totalPayment;
    }

    public BigDecimal getTotalPayment() 
    {
        return totalPayment;
    }

    public void setPaymentMonth(String paymentMonth) 
    {
        this.paymentMonth = paymentMonth;
    }

    public String getPaymentMonth() 
    {
        return paymentMonth;
    }

    public void setPaymentStatus(String paymentStatus) 
    {
        this.paymentStatus = paymentStatus;
    }

    public String getPaymentStatus() 
    {
        return paymentStatus;
    }

    public void setInsurancePlanId(Long insurancePlanId) 
    {
        this.insurancePlanId = insurancePlanId;
    }

    public Long getInsurancePlanId() 
    {
        return insurancePlanId;
    }

    public void setProofUrl(String proofUrl) 
    {
        this.proofUrl = proofUrl;
    }

    public String getProofUrl() 
    {
        return proofUrl;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("personalPayment", getPersonalPayment())
            .append("companyPayment", getCompanyPayment())
            .append("totalPayment", getTotalPayment())
            .append("paymentMonth", getPaymentMonth())
            .append("paymentStatus", getPaymentStatus())
            .append("insurancePlanId", getInsurancePlanId())
            .append("proofUrl", getProofUrl())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
                .append(employeeNumber, getEmployeeNumber())
            .toString();
    }

}
